闲扯
线段树进行区间操作一定要判断范围!!!
题面
Solution
如果直接排序显然是不好做的,我们考虑一个简单的形式: $01$ 序列排序。
这个显然是可以用线段树直接做的。
然后这个题有一个神奇的性质:答案是单调的
假设我们指定答案为 $k$ ,那么我们将所有不小于 $k$ 的值变为 $1$ ,其他的变为 $0$ ,如果最后排序完后 $q$ 上的数为 $1$ ,这说明这是有可能成为解的。
如果我们将答案放大,显然在不超过真正的答案的范围能的数都能得到 $val_q=1$ 。
所以我们就可以用二分答案来解决这道题。
时间复杂度: $O(n\log^2n)$ 。
Code
1 |
|
总结
这道题思维很新奇,值得借鉴。